package ar.utn.frgp.banco.front.action.clientes;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import ar.utn.frgp.banco.dto.ClienteDTO;
import ar.utn.frgp.banco.dto.UserDTO;
import ar.utn.frgp.banco.entity.Cliente;
import ar.utn.frgp.banco.exceptions.PersonalisedException;
import ar.utn.frgp.banco.front.action.EBAbstractAction;
import ar.utn.frgp.banco.front.constants.Constantes;
import ar.utn.frgp.banco.service.OperacionesClienteServ;

public class EliminarClienteInitAction  extends EBAbstractAction implements SessionAware{

	Map<String, Object> session;
	/**
	 * 
	 */
	private static final long serialVersionUID = 561150153999550203L;
	
	private ClienteDTO clienteDTO;
	
	private OperacionesClienteServ gestionClientesService;

	@Override
	public String execute() throws PersonalisedException {
		UserDTO userDTO = (UserDTO) session.get(Constantes.USER_LOGGED_BEAN);
		if(userDTO != null){
			Cliente cliente = gestionClientesService.searchCliente(userDTO.getDni());
			if(cliente != null){
				clienteDTO.setDni(cliente.getDni());
				clienteDTO.setNombre(cliente.getNombre());
				clienteDTO.setApellido(cliente.getApellido());
				clienteDTO.setDireccion(cliente.getDireccion());
				clienteDTO.setMail(cliente.getMail());
				
				return SUCCESS;
			}
		}else{
			throw new PersonalisedException("Debe estar logeado en el sistema");
		}
		return ERROR;
	}
	
	public ClienteDTO getClienteDTO() {
		return clienteDTO;
	}
	public void setClienteDTO(ClienteDTO clienteDTO) {
		this.clienteDTO = clienteDTO;
	}
	public void setSession(Map<String, Object> arg0) {
		this.session = arg0;
		
	}
	public OperacionesClienteServ getGestionClientesService() {
		return gestionClientesService;
	}
	public void setGestionClientesService(
			OperacionesClienteServ gestionClientesService) {
		this.gestionClientesService = gestionClientesService;
	}


}
